<?php
/*
* 正则表达式
 1.定界符号
 2.原子
 3.元字符
 4.模式修正符
 一个URL正则表达式
 $url="/(https|ftps?):\/\/(www|mail|news)\.([^\.\/]+).(com|org|net)/i";
 http://www.baidu.com
 ftp://mail.google.com
 https://news.hello.org
 用在分割的函数中，则使用上面的正则表字符串进行分割
 用在匹配的涵数中，则使用上面的正则表字符串进行匹配
 用在替换的函数中，则使用上面的正则表字符串进行替换
 有了正则，在一个正则处理函数中使用这个正则，则才能对字符串进行分割 、匹配查找及替换等 工作。

 和字符串处理函数对比介绍
 能使用字符串处理函数完成的功能，就不要使用正则表达式处理函数

 1.字符串的匹配和查找

 字符串处理函数strstr() strpos()  substr() 

strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。
strpos() 函数返回字符串在另一个字符串中第一次出现的位置。
strrpos，专业术语，意思是函数查找字符串在另一个字符串中最后一次出现的位置。该函数对大小写敏感。

str_replace() str_replace() 函数以其他字符替换字符串中的一些字符（区分大小写）。
str_ireplace() 不区分大小写

1.str_replace(string,string,string)
2.str_replace(array,string,string)
1.str_replace(array,array,string)


对比
preg_replace() 正则中替换函数

1.正常使用 preg_replace('string','string','string');
2.在正则中的子模式，可以用到第二个参数中，
3.在第二个参数中调用函数,需要在模式中使用e模式修正符号 
4.就是在前两个参数中都使用数组，可以一起将多个模式（正则）同时替换成多个值的模式






//str_replace()字符串中的替换函数，系统

preg_replace_callback()

*/

/* 一个unix样式的命令行过滤器，用于将段落开始部分的大写字母转换为小写。 */

// 将文本中的年份增加一年.


// print_r(explode('<h2>',$text));

// print_r(preg_split('/<h2>/is',$text));

// preg_match_all('/<h2>(.*?)<\/h2>/s',$text,$arr);
// print_r($arr);

// preg_match_all('/<h3>(.*?)<\/h3>/s',$text,$arr);
// print_r($arr);

// foreach ($arr as $key => $value) {	
// 	# code...
// 	echo preg_replace_callback(
// 			array('/<h3>(.*?)<\/h3>/s'),			         
//             "next_year",
//             $value);

// }


// function replace_specialChar($strParam){
//     $regex = "/\/|\~|\!|\@|\#|\\$|\%|\^|\&|\*|\(|\)|\_|\+|\{|\}|\:|\<|\>|\?|\[|\]|\,|\.|\/|\;|\'|\`|\-|\=|\\\|\|/";
//     return preg_replace($regex,"",$strParam);
// }
// $str = "123~!@#$%^&*()_+{}:|<>?,./;'[]\-=`456";
// $str = replace_specialChar($str);
// echo $str;
// die();


// 将文本中的年份增加一年.
$text = "<h2>词条形式</h2><p>压顶大厅</p><h3>1</h3><h3>2</h3><h3>3</h3><h2>词式</h2>";
// 回调函数
function next_year($matches)
{
  // 通常: $matches[0]是完成的匹配
  // $matches[1]是第一个捕获子组的匹配
  // 以此类推


    print_r($matches);


  return '<div>'.$matches[0].'</div>';
}
echo preg_replace_callback(
            "/<h2>(.*?)<\/h2>|<h3>(.*?)<\/h3>/is",
            "next_year",
            $text);